#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <algorithm>

#define FOR(i,a,n) for(int i=a,_n(n);i<_n;++i)
#define REP(i,n) FOR(i,0,n)

using namespace std;

typedef long long lld;
typedef pair<int,int> pii;
#define x first
#define y second

lld cross(pii a,pii b)
{
    return 1LL*a.x*b.y - 1LL*a.y*b.x;
}


bool judge(pii a,pii b,pii c)
{
    pii d;
    d.x = b.x - a.x;
    d.y = b.y - a.y;
    pii c2 = c;
    swap(c2.x,c2.y);
    c2.x = -c2.x;
    lld erea1 = cross(d,c);
    lld erea2 = cross(d,c2);
    if(erea1<0) erea1 = -erea1;
    if(erea2<0) erea2= -erea2;
    lld tc = 1LL*c.x*c.x+1LL*c.y*c.y;
    lld tc2 = 1LL*c2.x*c2.x+1LL*c2.y*c2.y;
    if(!tc) return a==b;
    //printf("%lld %lld\n",erea1%tc,erea2%tc2);
    if(erea1%tc==0&&erea2%tc2==0) return true;
    return false;
}

int main()
{
    pii a,b,c;
    while(cin>>a.x>>a.y>>b.x>>b.y>>c.x>>c.y)
    {
        pii a1 = a;
        swap(a1.x,a1.y);
        a1.x = -a1.x;
        if(judge(a,b,c)||judge(a1,b,c))
        {
            puts("YES");
            continue;
        }
        a.x = -a.x,a.y = -a.y;
        a1.x = -a1.x,a1.y = -a1.y;
        if(judge(a,b,c)||judge(a1,b,c))
        {
            puts("YES");
            continue;
        }
        puts("NO");
    }
	return 0;
}
